/*
求从指定源点出发到各个顶点的最短路径。

![](图片1)

假设：图中结点名均为单个互不相同的字母，权值均>0。

输入：
    第一行：结点数量n，弧数量e，源点
    后续e行：<结点，结点，权值>

输出：
    按结点的升序输出到达各个结点的最短路径长度
*/

/*
测试用例1:
输入：
7,10,a↵
<a,b,13>↵
<a,c,8>↵
<c,d,5>↵
<d,e,6>↵
<a,e,30>↵
<a,g,32>↵
<b,g,7>↵
<b,f,9>↵
<e,f,2>↵
<f,g,17>↵
输出：
a:0↵
b:13↵
c:8↵
d:13↵
e:19↵
f:21↵
g:20↵

测试用例2:
输入：
5,9,a↵
<a,b,10>↵
<b,a,20>↵
<a,d,50>↵
<a,e,45>↵
<b,c,15>↵
<c,d,20>↵
<c,e,5>↵
<d,e,10>↵
<e,c,30>↵
输出：
a:0↵
b:10↵
c:25↵
d:45↵
e:30↵

测试用例3:
输入：
5,7,a↵
<a,b,10>↵
<b,c,50>↵
<a,d,30>↵
<a,e,100>↵
<c,e,10>↵
<d,c,20>↵
<d,e,60>↵
输出：
a:0↵
b:10↵
c:50↵
d:30↵
e:60↵
*/